/**
  ETFAna project, Anyang Normal University && IMP-CAS
  \class ETFPIDManager
  \brief to manage particle identification (PID) objects in ETFAna
  \author SUN Yazhou, asia.rabbit@163.com
  \since 2021-12-13
  \date 2021-12-13 last modified
  \attention
  changelog
  <table>
  <tr>  <th>Date         <th>Author      <th>Description                   </tr>
  <tr>  <td>2021-12-13   <td>Asia Sun    <td>file created                  </tr>
  </table>

  \copyright Copyright (c) 2021-2024 Anyang Normal U. && IMP-CAS with LGPLv3 LICENSE
*/

#ifndef ETFPIDManager_h
#define ETFPIDManager_h

class ETFPID;
class ETFPIDm;
class ETFVMEEvent;
class ETFVMERawEvent;
class ETFPXISection;

class ETFPIDManager{
public:
  static ETFPIDManager *Instance();
  virtual ~ETFPIDManager();

  virtual void Register();
  ETFPID *GetPID() const;
  ETFPIDm *GetPIDm() const;

  void SetMagneticIntensity(double b);

  virtual void Draw(); ///< draw the arc and the lines of all the particles

  // ClassDef(ETFPIDManager, 0);

private:
  ETFPIDManager();
  static ETFPIDManager *fInstance;

protected:
  ETFPID *fPID; ///< pid-er for the heavy residues
  ETFPIDm *fPIDm; ///< pid-er for the light fragments (pion, proton, deutron, etc.)
};

#endif
